Skip to content

Add some user friendly features#21

Open
xsession wants to merge 259 commits into
jszeman:masterfrom
xsession:master
Open

Add some user friendly features#21
xsession wants to merge 259 commits into
jszeman:masterfrom
xsession:master

Conversation

@xsession

Copy link
Copy Markdown

Add new module generation:

  • generate all nessesary directories and files

Add new window button for paralel work with different statemachines
Add exit button that save automaticly the drawing on exit
Fix a bit the help section

Laszlo Ivanyi and others added 30 commits December 17, 2021 16:43
Conflicts:
	modules/lm73/test/CMakeLists.txt
…class target to crf_interfaces from ltc2471_test because it is the executable
Ivanyi Laszlo and others added 30 commits September 10, 2023 06:27
… with live state highlighting

- Add JinjaStateMachine (sm_jinja.py) and fix parser for all languages
- Create Jinja templates for Python, JavaScript, Java, VHDL
- Rewrite render.py for all language generators
- Remove old broken .j2 templates
- Add TCP debug server in backend for live state machine monitoring
- Add debug panel in GUI sidebar (active states, variables, event log)
- Add state_border_debug_active CSS class for highlighting active states
- Add debug color variable to all themes
- Add test_debug_client.py for testing the debug channel
CRF optimization (chsm_cfg.h):
- Add CHSM_CFG_LITE: strip function pointers from cqueue/cpool/crf structs, use direct-call dispatch macros (~156B RAM saved)
- Add CHSM_CFG_NO_FAULT_CNT: remove fault_cnt from cqueue (8B/HSM)
- Add CHSM_CFG_NO_DEBUG: code generator omits debug_log_func and debug_state_ac buffer (20B/module + flash)
- Replace stdlib.h/stdio.h with stddef.h where only NULL is needed
- All changes backward-compatible: no defines = original behavior

New module generator fixes:
- Fix create_project() crash: eel.show() instead of blocking eel.start()
- Fix comm_periph value mismatch (i2c_opt vs i2c) in HTML selects
- Fix licence selector values to match cookiecutter template
- Fix ES module script type breaking eel.expose()
- Remove broken main.html stylesheet link
- Add input validation and error feedback (failed_generate callback)
- Make template includes/links conditional on comm_periph selection
- Properly destroy tkinter root in browse_dir_path()
- gui_react/backend: FastAPI server with REST API, WebSocket, debug TCP bridge
- gui_react/frontend: React 18 + TypeScript + Vite + Zustand state management
  - Canvas with pan/zoom, state creation, transition drawing
  - StateNode with drag/resize/inline-edit, debug-active highlighting
  - TransitionPath rendering with arrowheads and label editing
  - Sidebar with file ops, property editor, settings, help, debug panel
  - NewModuleDialog mirroring original module wizard
  - Three themes: default, solarized dark, solarized light
- gui_react/electron: Electron main process + preload for native desktop app
  - Spawns FastAPI backend as child process
  - PyInstaller spec for bundling Python backend
  - electron-builder config for portable Windows exe
  - build.bat one-command build script
- docs/sphinx: Sphinx documentation (23 RST pages, conf.py, Makefile)
- docs/typst: Typst PDF reference manual
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant